package es.uv.bd.view.Bodega;

//import es.uv.bd.model.ClienteDAO;
import es.uv.bd.model.Bodegas;
import es.uv.bd.model.BodegasDAO;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import javax.swing.*;


public class BodegasCrear extends JFrame {
    
    private JTextField cod_bodega = new JTextField();

    private JTextField nombre = new JTextField();

    private JTextField pais = new JTextField();

    private JComboBox nombre_den_orig = new JComboBox();

    private JTextField descripcion = new JTextField();
    
    private JTextField email = new JTextField();

    private JTextField anyo = new JTextField();

    private JTextField region = new JTextField();

    private JTextField web = new JTextField();

    private JTextField telefono = new JTextField();

    private JTextField cod_postal = new JTextField();

    private JTextField direccion = new JTextField();

    private JTextField enologo = new JTextField();

    private BodegasDAO bodDAO = new BodegasDAO();
    
    private JTable mascotaTable;
  
    public BodegasCrear(JTable mascotaTable) {
            
        super("Nueva Bodega");
        
        this.mascotaTable = mascotaTable;
        
        Container cp = this.getContentPane();
        cp.setLayout(new BorderLayout());
        
        /* Cabecera */
        JPanel cabecera = createCabecera();
  
        /* Formulario */
        JPanel form = createForm();
        
        /* Botón */
        JPanel boton = createButton();

        /* Añadimos todos los paneles al Container */
        cp.add(cabecera, BorderLayout.NORTH);
        cp.add(form, BorderLayout.CENTER);
        cp.add(boton, BorderLayout.SOUTH);
        
        setSize(600,400);
        pack();
        setVisible(true);
    }
   
    private JPanel createCabecera() {
        JPanel c = new JPanel();
        JLabel l = new JLabel("Dar de alta bodega");
        l.setForeground(Color.BLUE);
        l.setHorizontalAlignment(JLabel.CENTER);
        l.setFont(new Font("Arial",Font.BOLD | Font.ITALIC,22));
        c.add(l);
        
        return c;
    }
    
    private JPanel createForm() {
                    
        JPanel form = new JPanel();
        Font labelFont = new Font("Arial", Font.BOLD, 12);
        Font textfFont = new Font("Arial", Font.PLAIN, 12);
        
       
        
            form.setLayout(new GridLayout(14,2));
            
            cod_bodega.setFont(textfFont);
            cod_bodega.setColumns(4);
            nombre.setFont(textfFont);
            nombre.setColumns(4);
            pais.setFont(textfFont);
            pais.setColumns(4);
            
            nombre_den_orig.setFont(textfFont);
            nombre_den_orig.setModel(new DefaultComboBoxModel(bodDAO.fk_Key()));
            
            descripcion.setFont(textfFont);
            descripcion.setColumns(4);
            email.setFont(textfFont);
            email.setColumns(4);
            anyo.setFont(textfFont);
            anyo.setColumns(4);
            region.setFont(textfFont);
            region.setColumns(4);
            web.setFont(textfFont);
            web.setColumns(4);
            telefono.setFont(textfFont);
            telefono.setColumns(4);
            cod_postal.setFont(textfFont);
            cod_postal.setColumns(4);
            direccion.setFont(textfFont);
            direccion.setColumns(4);
            enologo.setFont(textfFont);
            enologo.setColumns(4);
            
            JLabel cod_bodegaLabel = new JLabel("Codigo de la bodega:");
            cod_bodegaLabel.setFont(labelFont);
            cod_bodegaLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(cod_bodegaLabel);
            form.add(cod_bodega);

            JLabel nombreLabel = new JLabel("Nombre de la Bodega:");
            nombreLabel.setFont(labelFont);
            nombreLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(nombreLabel);
            form.add(nombre);

            JLabel paisLabel = new JLabel("Pais de la Bodega:");
            paisLabel.setFont(labelFont);
            paisLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(paisLabel);
            form.add(pais);

            JLabel emailLabel = new JLabel("Eamil de la Bodega:");
            emailLabel.setFont(labelFont);
            emailLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(emailLabel);
            form.add(email);
            
            JLabel nombre_den_origLabel = new JLabel("Denominacion de origen de la Bodega:");
            nombre_den_origLabel.setFont(labelFont);
            nombre_den_origLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(nombre_den_origLabel);
            form.add(nombre_den_orig);

            JLabel anyoLabel = new JLabel("Anyo de la Bodega:");
            anyoLabel.setFont(labelFont);
            anyoLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(anyoLabel);
            form.add(anyo);

            JLabel regionLabel = new JLabel("Region de la Bodega:");
            regionLabel.setFont(labelFont);
            regionLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(regionLabel);
            form.add(region);

            JLabel webLabel = new JLabel("Web de la Bodega:");
            webLabel.setFont(labelFont);
            webLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(webLabel);
            form.add(web);
            
            JLabel telefonoLabel = new JLabel("Telefono de la Bodega:");
            telefonoLabel.setFont(labelFont);
            telefonoLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(telefonoLabel);
            form.add(telefono);

            JLabel cod_postalLabel = new JLabel("Codigo postal de la Bodega:");
            cod_postalLabel.setFont(labelFont);
            cod_postalLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(cod_postalLabel);
            form.add(cod_postal);
            
            JLabel direccionLabel = new JLabel("Direccion de la Bodega:");
            direccionLabel.setFont(labelFont);
            direccionLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(direccionLabel);
            form.add(direccion);

            JLabel enologoLabel = new JLabel("Enologo de la Bodega:");
            enologoLabel.setFont(labelFont);
            enologoLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(enologoLabel);
            form.add(enologo);
            
            JLabel DDO_descripcionLabel = new JLabel("Si pais no es españa la ");
            DDO_descripcionLabel.setFont(labelFont);
            DDO_descripcionLabel.setHorizontalAlignment(JLabel.RIGHT);
            form.add(DDO_descripcionLabel);
            JLabel DDO_descripcion_2Label = new JLabel(" denominacion de origen sera null !! ");
            DDO_descripcion_2Label.setFont(labelFont);
            DDO_descripcion_2Label.setHorizontalAlignment(JLabel.LEFT);
            form.add(DDO_descripcion_2Label);
            
            return form;
    }
        
    private JPanel createButton() {
        
        JPanel botonPanel = new JPanel();
        
        JButton boton = new JButton("Añadir");
        boton.setActionCommand("botonBodega");
        boton.addActionListener(new ButtonListener());
        botonPanel.add(boton);
        return botonPanel;
    }
    
    private class ButtonListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent event) {
            try {
                String key = event.getActionCommand();
                switch (key) {
                    case "botonBodega":
                                                
                        Bodegas mascota = new Bodegas();
                        
                        mascota.setCod_bodega(Integer.parseInt(cod_bodega.getText()));
                        mascota.setNombre(nombre.getText());
                        mascota.setPais(pais.getText());
                        if( pais.getText().equals("españa")){
                            mascota.setNombre_den_orig((String)nombre_den_orig.getSelectedItem());
                        }
                        else{
                            mascota.setNombre_den_orig(null);
                        }
                        mascota.setEmail(email.getText());
                        mascota.setAnyo(Integer.parseInt(anyo.getText()));
                        mascota.setRegion(region.getText());
                        mascota.setWeb(web.getText());
                        mascota.setTelefono(Integer.parseInt(telefono.getText()));
                        mascota.setCod_postal(Integer.parseInt(cod_postal.getText()));
                        mascota.setDireccion(direccion.getText());
                        mascota.setEnologo(enologo.getText());
                       
                        BodegasDAO mascotaDao = new BodegasDAO();
                        mascotaDao.crearBodega(mascota);
                        /*
                         * Actualizamos el modelo
                         */
                        mascotaTable.setModel(mascotaDao.getTablaBodegas());
                        mascotaTable.updateUI();
                         /*
                         * Cerramos la ventana
                         */
                        dispose();
                        break;
                    default:
                        System.out.println("BodegaCrear: Accion '" + key + "' no reconocida.");
                        break;
                }
            }
            catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException /*| ParseException*/ e) {
                JOptionPane.showMessageDialog(
                null,
                "Error creando Bodega: " + e.getMessage(),
                "Atención",
                JOptionPane.ERROR_MESSAGE);
            }
        }
    }
}
